package com.yongz.controller;

import com.github.davidfantasy.jwtshiro.JWTHelper;
import com.github.davidfantasy.jwtshiro.annotation.AlowAnonymous;
import com.yongz.biz.StubBizImpl;
import com.yongz.domain.Account;
import com.yongz.service.AccountService;
import com.yongz.vo.JsonResult;
import com.yongz.vo.StuVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
public class StuController {
    @Autowired
    private StubBizImpl stuBiz;

    @GetMapping("/getStuVoById")
    public StuVo getStuVoById(Integer id) {
        return stuBiz.getStuVoById(id);
    }

    @PostMapping("/addStuVo")
    public void addStu(@RequestBody StuVo stuVo) {
        stuBiz.addStuVo(stuVo);
    }

    //获取所有学生信息和用户名密码
    @GetMapping("/getAllStuVo")
    public List<StuVo> getAllStuVo() {
        return stuBiz.getAllStuVo();
    }

    @DeleteMapping("/deleteStuVoById")
    public boolean deleteStuVoById(Integer id) {
        return stuBiz.deleteStuVoById(id);
    }

    @GetMapping("/getStuVoWithRedis")
    public StuVo getStuVoWithRedis(Integer id) {
        return stuBiz.getStuVoWithRedis(id);
    }

    @Autowired
    private JWTHelper jwtHelper;

    @AlowAnonymous
    @GetMapping("/login")
    public JsonResult login(String username, String password) {
        if (stuBiz.checkUsername(username, password)) {
            String token = jwtHelper.sign(username, password);
            return JsonResult.success(token);
        } else {
            return JsonResult.fail("登录失败");
        }
    }

    @Autowired
    private AccountService accountService;
    @AlowAnonymous
    @GetMapping("/getById")
    public Account getById(){
        return accountService.getById(4);
    }
}
